package com.example.zxd;

import java.util.Scanner;

/**
 * 小明的抽奖游戏><p>
 * 描述：
 * 小明组织了一场抽奖游戏，他给每个参加抽奖的人都发放了一张写有幸运数字的卡片，之后，他会用一套系统随机抽出一些中奖数字，中奖数字为任意幸运数字因数的人将获得奖品。现在，他想知道，一共有多少人将会获得奖品。
 *<p>
 * 输入：
 * 第一行一个整数 n
 * ，表示参加抽奖的人数，题目保证 1≤n≤105
 * 。
 *<p>
 * 第二行 n
 *  个整数 a1,a2,⋯,an
 * ，表示每个人的幸运数字 a
 * ，题目保证 1≤a≤109
 * 。
 *<p>
 * 第三行一个整数 m
 * ，表示系统将要抽出的中奖数字个数，题目保证 1≤m≤102
 * 。
 *<p>
 * 接下来 m
 *  行，每行一个整数 b1,b2,⋯,bn
 * ，表示系统抽出的每个中奖数字 b
 * ，题目保证 1≤b≤109
 * 。
 *<p>
 * 输出：
 * 输出一行，共一个整数，表示总获奖人数。
 *<p>
 * 样例输入：<p>
 * 6<p>
 * 6 1 2 3 4 6 <p>
 * 2<p>
 * 3<p>
 * 4<p>
 * 样例输出：<p>
 * 4<p>
 * 样例输入：<p>
 * 5<p>
 * 14 17 12 97 40<p>
 * 2<p>
 * 4<p>
 * 3<p>
 * 样例输出：<p>
 * 2<p>
 * 注释：<p>
 * 题目保证，对于 20%
 *  的数据，有 m=1
 * 。
 *<p>
 * 题目保证，对于 40%
 *  的数据，有 n=1
 * 。
 *<p>
 * 题目保证，对于 100%
 *  的数据，有 1≤n≤10^5
 * ，1≤m≤10^2
 * ，1≤a,b≤10^9
 * 。
 * @author: scarborough
 * @datetime: 2025/3/19 - 19:50
 * @status: AC
 */
public class PROB1023 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        int m = sc.nextInt();
        for (int i = 0; i < m; i++) {
            int b = sc.nextInt();
            for (int j = 0; j < n; j++) {
                if(arr[j] % b == 0) {
                    arr[j] = 0;
                }
            }
        }
        int res = 0;
        for (int i = 0; i < n; i++) {
            if(arr[i] == 0) {
                res++;
            }
        }
        System.out.println(res);
    }
}
